package com.xuecheng.api.content;

import com.xuecheng.api.content.model.dto.TeachplanDTO;
import com.xuecheng.api.content.model.dto.TeachplanMediaDTO;
import com.xuecheng.api.content.model.vo.BindTeachplanMediaVO;
import com.xuecheng.api.content.model.vo.TeachplanVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;

/**
 * @author wz
 * @description: 课程计划服务API
 * @date 2021-12-11
 */
@Api(value = "课程计划信息管理")
public interface TeachplanApi {

    @ApiOperation(value = "根据课程Id查询课程计划树形结构（树形结构为三级目录）")
    @ApiImplicitParam(name = "courseId", value = "课程id值", required = true, dataType = "Long", paramType = "path", example = "1")
    TeachplanDTO getTreeNodes(Long courseId);

    @ApiOperation("课程计划创建和修改")
    TeachplanDTO createOrModifyTeachplan(TeachplanVO vo);

    @ApiOperation(value = "删除课程计划")
    @ApiImplicitParam(name = "teachPlanId", value = "课程计划id值", required = true,
            dataType = "Long", paramType = "path", example = "1")
    void removeTeachPlan(Long teachPlanId);

    @ApiOperation(value = "课程计划和媒资信息绑定")
    TeachplanMediaDTO associationMedia(BindTeachplanMediaVO mediaVO);

}
